/*======================================================
*@author wf_Huang
*@Time 2018/9/18 20:06
*=======================================================
*@function  基于一串数组 添加一个或者多个生成一个数组
*=====================================================*/

var colors = ['red','green' ,'blue'] ;
var colors2 = colors.concat('yellow',['black','brown']);
console.log(colors);//[ 'red', 'green', 'blue' ]

console.log(colors2);//[ 'red', 'green', 'blue', 'yellow', 'black', 'brown' ]

/*======================================================
*@author wf_Huang
*@Time 2018/9/18 20:15
*=======================================================
*@function  复制一个数组去除期中一个或者多个
*=====================================================*/
var colors3 = colors2.slice(2) ;
var colors4 = colors2.slice(1) ;
var colors5 = colors2.slice(1,3) ;
console.log(colors3);//[ 'blue', 'yellow', 'black', 'brown' ]
console.log(colors4);//[ 'green', 'blue', 'yellow', 'black', 'brown' ]
console.log(colors5);//[ 'green', 'blue' ]

/*======================================================
*@author wf_Huang
*@Time 2018/9/18 20:28
*=======================================================
*@function  位置方法 拿到对应值的下标
*  indexOf从前数的第一个 lastIndexOf从后数的第一个
*=====================================================*/
var numbers = [1,2,3,4,5,6,7,8,9,4]  ;
console.log(numbers.indexOf(4)); //3
console.log(numbers.lastIndexOf(4)); //9
console.log(numbers.lastIndexOf(10)); //-1  不存在


/*======================================================
*@author wf_Huang
*@Time 2018/9/18 20:36
*=======================================================
*@function  迭代方式
*=====================================================*/
var everyResult = numbers.every(function (item,index,array) {
    return (item > 4) ;
}) ;
console.log(everyResult); //false 所有返回都是true 时  返回值就为true

var someResult = numbers.some(function (item,index,array) {
    return (item > 4) ;
})

console.log(someResult); //true 有一个返回都是true 时  返回值就为true

var filterResult = numbers.filter(function (item,index,array) {
    return (item > 4) ;
})

console.log(filterResult); //[ 5, 6, 7, 8, 9 ] 返回大于4的数组


var mapResult = numbers.map(function (item,index,array) {
    return (item * 2) ;
})

console.log(mapResult); //[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 8 ] 可循环每一个进行操作

numbers.forEach(function (item,index,array) {
    console.log(item);
}) ;

//RegExp 这一章涉及到正则  后面单独用一个章节来梳理
console.log('正则输出===============');
/*
正则的基本术语

.	匹配除换行符以外的任意字符
\w	匹配字母或数字或下划线
\s	匹配任意的空白符
\d	匹配数字
\b	匹配单词的开始或结束
^	匹配字符串的开始
$	匹配字符串的结束

*	重复零次或更多次
+	重复一次或更多次
?	重复零次或一次
{n}	重复n次
{n,}	重复n次或更多次
{n,m}	重复n到m次

\W	匹配任意不是字母，数字，下划线，汉字的字符
\S	匹配任意不是空白符的字符
\D	匹配任意非数字的字符
\B	匹配不是单词开头或结束的位置
[^x]	匹配除了x以外的任意字符
[^aeiou]	匹配除了aeiou这几个字母以外的任意字符

*/

var strData = '@$@!1123854来几个汉字  werFSADdsdwe @$@!1123854来几个汉字  werFSADdsdwe';

var zZ1 = /\s/ ;
console.log(zZ1.test(strData)); //true   判断是或否含有空格

console.log(strData.search(/er/));//19   输出第一次查找到的位置

console.log(strData.replace(/er/, '替换内容'));//@$@!1123854来几个汉字  w替换内容FSADdsdwe @$@!1123854来几个汉字  werFSADdsdwe
                                              //替换第一个er

console.log(strData.replace(/er/g, '替换内容'));//@$@!1123854来几个汉字  w替换内容FSADdsdwe @$@!1123854来几个汉字  w替换内容FSADdsdwe
                                               //替换所有er

console.log(strData.split('几'));//[ '@$@!1123854来','个汉字  werFSADdsdwe @$@!1123854来', '个汉字  werFSADdsdwe' ]
                                //使用某个字符来拆分成数组

console.log(strData.split(/[^0-9]+/));//[ '', '1123854', '234234', '1123854', '' ]
